package net.guerlab.sdk.anubis.entity;

import com.fasterxml.jackson.annotation.JsonProperty;

/**
 * 异步通知信息
 * 
 * @author guer
 *
 */
public class NotifyInfo {

    /**
     * 蜂鸟配送开放平台返回的订单号
     */
    @JsonProperty("open_order_code")
    private String openOrderCode;

    /**
     * 商户自己的订单号
     */
    @JsonProperty("partner_order_code")
    private String partnerOrderCode;

    /**
     * 状态码
     */
    @JsonProperty("order_status")
    private int orderStatus;

    /**
     * 状态推送时间(毫秒)
     */
    @JsonProperty("push_time")
    private long pushTime;

    /**
     * 蜂鸟配送员姓名
     */
    @JsonProperty("carrier_driver_name")
    private String carrierDriverName;

    /**
     * 蜂鸟配送员电话
     */
    @JsonProperty("carrier_driver_phone")
    private String carrierDriverphone;

    /**
     * 描述信息
     */
    @JsonProperty("description")
    private String description;

    /**
     * 微仓地址
     */
    @JsonProperty("address")
    private String address;

    /**
     * 微仓纬度
     */
    @JsonProperty("latitude")
    private long latitude;

    /**
     * 微仓经度
     */
    @JsonProperty("longitude")
    private long longitude;

    /**
     * 订单取消原因
     * <ul>
     * <li>1:用户取消</li>
     * <li>2:商家取消</li>
     * </ul>
     */
    @JsonProperty("cancel_reason")
    private int cancelReason;

    /**
     * 错误编码
     */
    @JsonProperty("error_code")
    private String errorCode;

    @Override
    public String toString() {
        StringBuilder builder = new StringBuilder();
        builder.append("NotifyInfo [openOrderCode=");
        builder.append(openOrderCode);
        builder.append(", partnerOrderCode=");
        builder.append(partnerOrderCode);
        builder.append(", orderStatus=");
        builder.append(orderStatus);
        builder.append(", pushTime=");
        builder.append(pushTime);
        builder.append(", carrierDriverName=");
        builder.append(carrierDriverName);
        builder.append(", carrierDriverphone=");
        builder.append(carrierDriverphone);
        builder.append(", description=");
        builder.append(description);
        builder.append(", address=");
        builder.append(address);
        builder.append(", latitude=");
        builder.append(latitude);
        builder.append(", longitude=");
        builder.append(longitude);
        builder.append(", cancelReason=");
        builder.append(cancelReason);
        builder.append(", errorCode=");
        builder.append(errorCode);
        builder.append("]");
        return builder.toString();
    }

    /**
     * 返回 蜂鸟配送开放平台返回的订单号
     *
     * @return 蜂鸟配送开放平台返回的订单号
     */
    public String getOpenOrderCode() {
        return openOrderCode;
    }

    /**
     * 设置蜂鸟配送开放平台返回的订单号
     *
     * @param openOrderCode
     *            蜂鸟配送开放平台返回的订单号
     */
    public void setOpenOrderCode(
            String openOrderCode) {
        this.openOrderCode = openOrderCode;
    }

    /**
     * 返回 商户自己的订单号
     *
     * @return 商户自己的订单号
     */
    public String getPartnerOrderCode() {
        return partnerOrderCode;
    }

    /**
     * 设置商户自己的订单号
     *
     * @param partnerOrderCode
     *            商户自己的订单号
     */
    public void setPartnerOrderCode(
            String partnerOrderCode) {
        this.partnerOrderCode = partnerOrderCode;
    }

    /**
     * 返回 状态码
     *
     * @return 状态码
     */
    public int getOrderStatus() {
        return orderStatus;
    }

    /**
     * 设置状态码
     *
     * @param orderStatus
     *            状态码
     */
    public void setOrderStatus(
            int orderStatus) {
        this.orderStatus = orderStatus;
    }

    /**
     * 返回 状态推送时间(毫秒)
     *
     * @return 状态推送时间
     */
    public long getPushTime() {
        return pushTime;
    }

    /**
     * 设置状态推送时间(毫秒)
     *
     * @param pushTime
     *            状态推送时间
     */
    public void setPushTime(
            long pushTime) {
        this.pushTime = pushTime;
    }

    /**
     * 返回 蜂鸟配送员姓名
     *
     * @return 蜂鸟配送员姓名
     */
    public String getCarrierDriverName() {
        return carrierDriverName;
    }

    /**
     * 设置蜂鸟配送员姓名
     *
     * @param carrierDriverName
     *            蜂鸟配送员姓名
     */
    public void setCarrierDriverName(
            String carrierDriverName) {
        this.carrierDriverName = carrierDriverName;
    }

    /**
     * 返回 蜂鸟配送员电话
     *
     * @return 蜂鸟配送员电话
     */
    public String getCarrierDriverphone() {
        return carrierDriverphone;
    }

    /**
     * 设置蜂鸟配送员电话
     *
     * @param carrierDriverphone
     *            蜂鸟配送员电话
     */
    public void setCarrierDriverphone(
            String carrierDriverphone) {
        this.carrierDriverphone = carrierDriverphone;
    }

    /**
     * 返回 描述信息
     *
     * @return 描述信息
     */
    public String getDescription() {
        return description;
    }

    /**
     * 设置描述信息
     *
     * @param description
     *            描述信息
     */
    public void setDescription(
            String description) {
        this.description = description;
    }

    /**
     * 返回 微仓地址
     *
     * @return 微仓地址
     */
    public String getAddress() {
        return address;
    }

    /**
     * 设置微仓地址
     *
     * @param address
     *            微仓地址
     */
    public void setAddress(
            String address) {
        this.address = address;
    }

    /**
     * 返回 微仓纬度
     *
     * @return 微仓纬度
     */
    public long getLatitude() {
        return latitude;
    }

    /**
     * 设置微仓纬度
     *
     * @param latitude
     *            微仓纬度
     */
    public void setLatitude(
            long latitude) {
        this.latitude = latitude;
    }

    /**
     * 返回 微仓经度
     *
     * @return 微仓经度
     */
    public long getLongitude() {
        return longitude;
    }

    /**
     * 设置微仓经度
     *
     * @param longitude
     *            微仓经度
     */
    public void setLongitude(
            long longitude) {
        this.longitude = longitude;
    }

    /**
     * 返回 订单取消原因
     * <ul>
     * <li>1:用户取消</li>
     * <li>2:商家取消</li>
     * </ul>
     *
     * @return 订单取消原因
     */
    public int getCancelReason() {
        return cancelReason;
    }

    /**
     * 设置订单取消原因
     * <ul>
     * <li>1:用户取消</li>
     * <li>2:商家取消</li>
     * </ul>
     *
     * @param cancelReason
     *            订单取消原因
     */
    public void setCancelReason(
            int cancelReason) {
        this.cancelReason = cancelReason;
    }

    /**
     * 返回 错误编码
     *
     * @return 错误编码
     */
    public String getErrorCode() {
        return errorCode;
    }

    /**
     * 设置错误编码
     *
     * @param errorCode
     *            错误编码
     */
    public void setErrorCode(
            String errorCode) {
        this.errorCode = errorCode;
    }
}
